﻿#define _CRT_SECURE_NO_WARNINGS 1
//题目描述
//给出正整数𝑛，要求按如下方式构造数列：
//1. 只有一个数𝑛的数列是一个合法的数列。
//2. 在一个合法的数列的末尾加入一个正整数，但是这个正整数不能超过该数列最后一项的一半，可以得到一个新的合法数列。
//请你求出，一共有多少个合法的数列。两个合法数列𝑎,𝑏不同当且仅当两数列长度不同或存在一个正整数𝑖≤∣𝑎∣，使得𝑎𝑖≠𝑏𝑖。
//输入格式
//输入只有一行一个整数，表示𝑛。
//输出格式
//输出一行一个整数，表示合法的数列个数。
#include<stdio.h>
int main()
{
	int n = 0, cnt = 1, f[1001] = { 0 };
	f[0] = f[1] = 1;
	scanf("%d", &n);
	for (int i = 2; i <= n; i++)
	{
		if (i % 2 == 0)
			f[i] = f[i - 1] + f[i / 2];
		else
			f[i] = f[i - 1];
	}
	printf("%d", f[n]);
	return 0;
}